/*
 * @lc app=leetcode.cn id=1749 lang=cpp
 *
 * [1749] 任意子数组和的绝对值的最大值
 */

// @lc code=start
class Solution
{
public:
    int maxAbsoluteSum(vector<int> &nums)
    {
        //我感觉可以用贪心啊 不过动态规划也行
        int sum = nums[0];      //当前和
        int res = abs(nums[0]); //当前子集最大绝对值之和
        //先好好想一想
        for (int i = 1; i < nums.size(); i++)
        {
            if (abs(sum+nums[i]) > abs(nums[i]))
            {
                sum += nums[i];
            }
            else
            {
                sum = nums[i];
            }
            res = max(res, abs(sum));
        }
        return res;
    }
};
// @lc code=end
